BreakPoint Overview

For almost all breakpoints, the setting command takes the format:

BP?? <parameters> [IF (conditions)] [DO "statement"]

and the first 2 character 'BP' can be replaced with 'GO':

GO?? <parameters> [IF (conditions)] [DO "statement"]

to set a single instance breakpoint. TRW2000 will set the breakpoint, go, and clear it after the break.

conditions:

Conditions must be enclosed in (). The condition support

Operator      Meaning

==            Logical Equal
!=            Logical Not equal
>             Logical Greater than
>=            Logical Greater than or equal to
<             Logical Less than
<=            Logical Less than or equal to

&             Bit and
|             Bit or
^             Bit xor

>>            Bit shift right
<<            Bit shift left

	;not support !   Logical NOT
&&            Logical AND
||            Logical OR

+             add
-             sub
*             mul
/             division
%             mod

()            parenthesis

(byte)
(word)
(dword)
*             get value from point
+             positive
-             negative
Ex:
g if ((byte)*eip==c2)
g if (*esp==ebx)
go if (eip>401000&&eip<<10000000)
For unregister version, the condition expression can not be very long.

Do statement:

The <statement> can be any valid TRW2000 command. It must enclosed in quotation marks.

Ex:

BPX cs:401000 if (eax>200) do "d eax"
GOX 401000 if (cs!=28) do "d ss:esp"
G if (eip<1000)

soft break point

TRW2000 support soft breakpoint like

g if (conditions)
go if (conditions)
bp if (conditions)

that is, breakpoint without address, with only conditions. If you set a this kind of breakpoint and run, TRW2000 will run the program step by step, and check the condition for each step.